Many modern operating systems (OS's) use the Advanced Configuration and Power Interface (ACPI) standard, e.g., Rev. 3.0b, published Oct. 10, 2006, for optimizing system power. An ACPI implementation allows a processor core to be in different power-consumption states, generally referred to as so-called C1 to Cn states. When a core is active, it runs at a so-called C0 state, and when the core is idle it may be placed in a core low power state, a so-called core non-zero C-state (e.g., C1-C6 states).
In addition to power-saving states, performance states or so-called P-states are also provided in ACPI. These performance states may allow control of performance-power levels while a core is in an active (C0) state. In general, multiple P-states may be available, namely from P0-Pn, where P0 corresponds to a maximum frequency for the core, while each P-state, e.g., P1-Pn, operates the core at lower performance levels.
Many processors provide hardware support for improved performance. Oftentimes, such support includes a so-called turbo mode in which when additional headroom (e.g., current consumption, power consumption and temperature) is available, the processor can operate at a higher frequency to maximize performance.
Operating systems such as a Microsoft WINDOWS™ OS provide for three modes of operation: power saving, balanced, and high performance. Turbo mode is disabled in the power saving mode, and is always enabled in the high performance mode. However, the balanced mode is expected to make intelligent decisions about when to enter turbo mode for performance and when to emphasize power savings. In this balanced mode, at low utilizations, turbo mode is not enabled as power consumption may be excessively high, particularly for the amount of utilization occurring. However, at higher utilizations (e.g., greater than approximately 80%), turbo mode may be enabled. This is so, as without providing for this higher frequency, there is a risk that expected performance may not be obtained.
The SPECpower_ssj2008 benchmark is an industry standard metric to determine the power efficiency of a system. Performance and power measurements are taken at various load levels from 0 to 100% utilization. An OS vendor may choose to disable turbo mode entirely in a default balanced mode if it is active at lower utilization points of the SPECpower_ssj2008 benchmark, since current OS requirements dictate that in the balanced mode that turbo mode not be entered until a utilization rate of 80% is reached. But with an ever-increasing number of threads executing on a processor, turbo mode may be entered at utilization rates as low as 50%. Thus the OS vendor may disable turbo mode in the balanced mode of operation and as a result, a user does not obtain the possible performance benefits of turbo mode.
Intelligent turbo is a technique that attempts to deal with this problem by delaying turbo mode entry for a programmed delay. However, this eliminates the performance upside for single-threaded and throughput modes. And, the delay window can be relatively long, which prevents a requesting application from taking advantage of the increased performance of turbo mode. The frequency loss of disabling turbo for single-thread applications can be as much as a gigahertz (GHz) or more.